Snap the Dot
Introduction
Snap the dot is a game of skill where the player has to press A exactly when the dot reaches the center of the screen.
This tutorial shows how to use the game engine.
Make a sprite variable
Create a new variable called ||variables:sprite||.
let sprite = 0
Create a sprite
Set the ||variables:sprite|| variable to the value returned by ||game:create sprite||. A sprite is a single pixel that can move on the screen. It has an x and y position along with a direction of motion. Use the value
of 2 for both x and y.
let sprite = game.createSprite(2, 2)
Move the dot
The sprite starts in the center facing right. Put a ||game:sprite move|| into a ||basic:forever|| loop to make the sprite by 1 pixel. Notice how it moves to the right but does not bounce back.
let sprite = game.createSprite(2, 2)
basic.forever(function () {
sprite.move(1)
})
Bounce
Set ||game:if on edge, bounce|| to make the sprite bounce on the side of the screen. Also, add a ||basic:pause|| for 100 milliseconds to slow down the sprite.
let sprite = game.createSprite(2, 2)
basic.forever(function () {
sprite.move(1)
sprite.ifOnEdgeBounce()
basic.pause(100)
})
Test and download
Use the simulator to find the best speed. If you have a micro:bit, press |Download| to try it out on the device.
Button handling
When A is pressed, we test if the sprite is in the center or not.
Use a ||input:on button pressed|| event to run code when the A button is presses. In the event,
check ||logic:if|| the ||game:led sprite property x|| is equal to 2.
let sprite = game.createSprite(2, 2)
input.onButtonPressed(Button.A, function () {
if (sprite.get(LedSpriteProperty.X) == 2) {
} else {
}
})
basic.forever(function () {
sprite.move(1)
basic.pause(100)
sprite.ifOnEdgeBounce()
})
Score and game over
Finally, ||game:add to score|| by 1 when ||game:led sprite property x|| is 2 and then make the
||game:game over|| when it’s not 2. This is to handle both success (sprite in the center = 2) and failure (sprite not in the center != 2).
let sprite = game.createSprite(2, 2)
input.onButtonPressed(Button.A, function () {
if (sprite.get(LedSpriteProperty.X) == 2) {
game.addScore(1)
} else {
game.gameOver()
}
})
basic.forever(function () {
sprite.move(1)
basic.pause(100)
sprite.ifOnEdgeBounce()
})
Test and download
Your game is ready! If you have a micro:bit, press |Download| to try it out on the device.